CircuitPython
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
top
CircuitPythoncite-ref-5[5] is an open-source derivative of the MicroPython programming language targeted toward students and beginners. Development of CircuitPython is supported by Adafruit Industries. It is a software implementation of the Python 3 programming language, written in C.cite-ref-cp-github-3-1[3] It has been ported to run on several modern microcontrollers.
CircuitPython consists of a Python compiler to bytecode and a runtime interpreter of that bytecode that runs on the microcontroller hardware. The user is presented with an interactive prompt (the REPL) to execute supported commands immediately. Included are a selection of core Python libraries. CircuitPython includes modules which give the programmer access to the low-level hardware of supported products as well as higher-level libraries for beginners.cite-ref-6[6]
CircuitPython is targeted to be compatible with CPython, the reference implementation of the Python programming language.cite-ref-9[9] Programs written for CircuitPython-compatible boards may not run unmodified on other platforms such as the Raspberry Pi.cite-ref-10[10]
Contents
• Usage
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
Usage
CircuitPython is being used as an emerging alternative solution for microcontroller programming, which is usually done in C, C++, or assembly. The language has also seen uptake in making small, handheld video game devices.cite-ref-11[11] Developer Chris Young has ported his infrared transmit-and-receive software to CircuitPython to provide interactivity and to aid those with accessibility issues.cite-ref-12[12]
Community
The user community support includes a Discord chat room and product support forums.cite-ref-13[13] A Twitter account dedicated to CircuitPython news was established in 2018.cite-ref-14[14] A newsletter, Python on Microcontrollers, is published weekly since 15 November, 2016 by Adafruit to provide news and information on CircuitPython, MicroPython, and Python on single board computers.cite-ref-15[15] A Reddit subreddit, r/CircuitPython, provides news on CircuitPython and related news and projects and has about 4,300 members.cite-ref-16[16]
Hardware support
As of July 6, 2025 version 9.2.8 supports over 608 different micro controller boardscite-ref-17[17]
The version 9.1.0 supports a range of platforms, called "ports":cite-ref-18[18]
• atmel-samd: Microchip SAMD21, SAMx5x
• cxd56: Sony Spresense
• nordic: Nordic nRF52840, nRF52833
• stm: ST STM32F4 chip family
These ports are considered alpha and will have bugs and missing functionality:
• litex: fomu
• mimxrt10xx: NXP i.MX RT10xxx
• renode: hardware simulator
• silabs: Silicon Labs MG24 family
• stm: ST non-STM32F4 chip families
Blinka Software Abstraction Layer
CircuitPython code may run on MicroPython or CPython using the Adafruit written Blinka compatibility layer.cite-ref-20[20] It acts as a translation layer between CircuitPython code and underlying code. This allows CircuitPython code to run on many more devices including a wide range of single-board computers which are listed on circuitpython.org.cite-ref-21[21] It is a pip installable Python library. The CircuitPython runtime is not used, as documented in the guide CircuitPython Libraries on Linux and Raspberry Pi.cite-ref-22[22]
Modules (Libraries)
References
cite-note-11. citerefshawcroft2017Shawcroft, Scott (19 July 2017). "CircuitPython 1.0.0!". Adafruit Blog. Adafruit Industries. Retrieved 1 May 2018.
cite-note-wikidata-187b4336592c723995dca63d4ec45ce59aead960-v20-22. "Release 9.2.8". 28 May 2025. Retrieved 13 June 2025.
cite-note-cp-github-33. "adafruit/circuitpython". GitHub. Adafruit Industries. Retrieved 2 May 2018.
cite-note-43. citerefgeorge2014George, Damien P. (4 May 2014). "circuitpython/LICENSE". GitHub. Retrieved 1 May 2018.
cite-note-66. ↑ "CircuitPython". Read the Docs. Adafruit Industries. Retrieved 1 May 2018.
cite-note-77. ↑ citerefgeorge2016George, Damien (20 May 2016). "Damien P. George". Damien P. George. Retrieved 1 May 2018.
cite-note-88. ↑ "Adafruit CircuitPython". MicroPython Forum. MicroPython.org. Retrieved 2 May 2018.
cite-note-99. ↑ citereflewis2018Lewis, James (14 February 2018). "Circuit Python adds Python to Microcontrollers". The Bald Engineer. Retrieved 2 May 2018.
cite-note-1010. ↑ citerefganneGanne, Simon. "Can I use circuitPython code on my raspberry?". Element 14 Community. Element 14.
cite-note-1111. ↑ citerefdopieralskiDopieralski, Radomir. "CircuitPython LAMEBOY". BitBucket. Retrieved 2 May 2018.
cite-note-1212. ↑ citerefyoung2018Young, Chris (6 June 2018). "Announcing IRLibCP — a Circuit Python Module for Infrared Transmitting and Receiving". CY's Tech Talk. Chris Young. Retrieved 2 May 2018.
cite-note-1313. ↑ "Adafruit CircuitPython and MicroPython". Adafruit Support Forums. Adafruit Industries. Retrieved 1 May 2018.
cite-note-1515. ↑ "The Python on Microcontrollers Newsletter". Adafruit Daily. Adafruit Industries. Retrieved 17 July 2024.
cite-note-1616. ↑ "r/CircuitPython". Reddit.com. Adafruit Industries. Retrieved 17 July 2024.
cite-note-1717. ↑ "Circuitpython.org downloads".
cite-note-1818. ↑ "CircuitPython 9.1.0". GitHub. 17 July 2024.
cite-note-1919. ↑ "Why are we dropping support for ESP8266?". Adafruit.com. Adafruit Industries. Retrieved 15 April 2019.
cite-note-2020. ↑ "Blinka". CircuitPython. Adafruit Industries. Retrieved 17 July 2024.
cite-note-2121. ↑ "Blinka". CircuitPython. Adafruit Industries. Retrieved 17 July 2024.
cite-note-2222. ↑ "CircuitPython Libraries on Linux and Raspberry Pi". Adafruit Learning System. Adafruit Industries Industries. Retrieved 17 July 2024.
cite-note-2323. ↑ "Python on Microcontrollers Newsletter". Retrieved 17 July 2024.
cite-note-2424. ↑ "CircuitPython Libraries". Retrieved 17 July 2024.
External links